How does it work?
IO River provides a holistic solution for managing multiple CDN providers. IO River allows you to manage multiple CDNs just like you manage a single CDN today. The solution doesn’t introduce any additional tier that increases latency or creates a single point of failure. The IO River solution is built on three layers:
Traffic Management
IO River provides full control for managing how traffic flows between different CDNs. Traffic management is done by creating and configuring traffic policies. A traffic policy defines the flow of the traffic for specific geolocations, enabling customers to define performance, availability, and cost preferences.
DNS
IO River controls the traffic flow via DNS, i.e., DNS configuration is deployed according to traffic policy definitions. End-user traffic does not pass through IO River. Once you successfully create a service and configure your traffic policies, all you need to do is modify the DNS record for your domain to point to your service CNAME. For more information, see moving your traffic to IO River.
The diagram below illustrates the flow of traffic being distributed between CDNs:
- The end-user sends a DNS query to resolve the domain www.example.com.
- The DNS returns the IP address of the selected CDN based on the configured policy. For example, if a static policy with an 80-20 split was configured, the DNS will respond 80% of the time with the IP address of the first CDN.
- The end-user sends HTTP requests to the selected CDN.
Types of Policies
There are three main traffic policy types:
Static Policy
In a static policy, the customer controls the percentage of traffic that goes to each CDN provider. For example, you can define that 80% of the traffic in the US will go via CDN-A, 15% via CDN-B, and the remaining 5% via CDN-C.
Dynamic Policy
A dynamic policy allows you to benefit from the best-performing CDN in each selected geolocation. Using a dynamic policy requires you to first set up a performance monitor. The system will automatically route traffic to the best-performing CDN based on the performance results for the configured monitor.
Cost-Based Policy
The system can also consider cost as part of the CDN routing decisions. If you have a minimal traffic commitment to a CDN provider, you can set this commitment, and the system will route traffic between the different CDNs while ensuring the commitment is met.
Q: What if in some locations CDN-A (without commitment) outperforms CDN-B (which has a commitment)?
A: In this case, you can define a performance penalty. For example, if the performance of CDN-A is 10% better compared to CDN-B and the configured penalty is 5%, traffic will be routed to CDN-A in this specific geolocation.
In addition to commitment, in a cost-based policy, you can prioritize providers based on cost preferences. Traffic will then be routed between the CDNs based on this order while considering performance penalties.
Failover
IO River can automatically detect CDN failures and route traffic to a healthy CDN. The detection of failures and traffic routing is done at the country level. Every traffic policy that includes multiple CDN providers can have automatic failover enabled. Using a policy with failover enabled requires you to first set up an availability monitor.
For more information, see Creating a Traffic Policy.
Management Orchestration
IO River allows you to manage multiple CDNs as easily as you manage a single CDN provider. It includes a single management console, a single REST API, and a Terraform provider. Each configuration change made via the IO River platform is automatically propagated to all CDN providers. IO River management ensures alignment across all providers with your configuration—there is a single source of truth.
CDN Management
IO River management includes:
- Certificates: Complete certificate lifecycle management.
- Domain: Manage your custom domains.
- Origins: Manage your origin servers.
- Behaviors: Define custom rules for your traffic, such as custom cache TTLs, headers, browser cache settings, and many more. For more detailed information, see How to define a behavior.
- Logs: If you need to stream CDN logs, you can stream a unified version of the logs to your S3 bucket.
IO River controls the different CDNs via API. Once a CDN account is added to your service, any change in the service will be deployed across all the CDNs in this service. The following diagram shows how CDN management is done:
Traffic Analytics
In addition to managing everything in one place, IO River provides a detailed analytics page for traffic passing through the CDNs. You have visibility into how the traffic behaves and can compare different traffic metrics between the CDNs.
Edge Services
IO River provides consistent edge services across the different CDNs. This includes the following services:
- WAF
- Rate-Limiting
- Edge-Computing
IO River's unique solution provides these services at the edge, without introducing an additional tier or a single point of failure. Once you configure one of the services above, IO River deploys them on the CDNs’ edge-compute layer, adding no additional latency to the traffic. Management of these services is done in one place via the IO River interface. For example, you manage your WAF custom rules once, and they automatically get deployed on all CDNs.